package com.cms.recursoshumanos.json.object;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.cms.recursoshumanos.cache.ListaTipoMenuCache;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.object.TipoMenu;
import com.cms.recursoshumanos.object.list.ListaTipoMenu;

public class JsonObjectGetTipoMenu 
{

	public static JsonObjectGetTipoMenu _instance = null;
	public static JsonObjectGetTipoMenu getInstance() {
		if(_instance == null)
			_instance = new JsonObjectGetTipoMenu();
		
		return _instance;
	}
	public String Result;
	private static final String
	
		GETTIPOMENU = "GETTIPOMENU",
		GETTIPOMENU_STATUS = "STATUS",
		GETTIPOMENU_DATA = "DATA",
		GETTIPOMENU_DATOS_TIPO_MENU = "DATOS_TIPO_MENU",
		
		GETTIPOMENU_TIPO_MENU_ID = "tipo_menu_id",
		GETTIPOMENU_NOMBRE_TIPO_MENU = "nombre_tipo_menu",
		GETTIPOMENU_DESCRIPCION_TIPO_MENU = "descripcion_tipo_menu";
	

	
	
	
	public void fromJSON ( String jsonString) 
	{
		if (jsonString != null)
		{
			if (!jsonString.equals(""))
			{
				try
				{
					JSONObject jsonObject = new JSONObject(jsonString);
					JSONObject getListaMenu = jsonObject.getJSONArray(GETTIPOMENU).getJSONObject(0);
					String status = getListaMenu.getString(GETTIPOMENU_STATUS);
					
					Result = status;
					
					if (status.equals(Constant.CODE_OK))
					{
		
						JSONArray data = getListaMenu.getJSONArray(GETTIPOMENU_DATA);
						
						JSONObject objeto_data = data.getJSONObject(0);
						JSONArray datos_menu = objeto_data.getJSONArray(GETTIPOMENU_DATOS_TIPO_MENU);
						
						ListaTipoMenu listado_tipo_menu = new ListaTipoMenu();
						
						
						for (int i = 0; i < datos_menu.length(); i++ )
						{
								JSONObject json_evento = datos_menu.getJSONObject(i);
								
								
								listado_tipo_menu.addTipoMenu(new TipoMenu(Integer.parseInt(json_evento.getString(GETTIPOMENU_TIPO_MENU_ID)),
																										json_evento.getString(GETTIPOMENU_NOMBRE_TIPO_MENU),
																										json_evento.getString(GETTIPOMENU_DESCRIPCION_TIPO_MENU)));
						
							
										
						}
						ListaTipoMenuCache.getInstance().setListaTipoMenu(listado_tipo_menu);
						
					}
					
				} 
				catch (JSONException ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
				catch (Exception ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
			}
			else
			{
				Result = Constant.CODE_NOT_SERVER_RESPONSE;
			}
		}
		else
		{
			Result = Constant.CODE_NOT_SERVER_RESPONSE;
		}

	}

	public String getResult()
	{
		return Result;
	}
	
}



